import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;  // (Date)
/**
 * Clase que representa un segmento de Tuberia
 * 
 * @author (Programacion Orientada A Objetos - Gonzalez Donat - Neri Andriano) 
 * @version (9/05/12)
 */
public class Tuberia extends Piso
{
    private Date cont;      //almacena el tiempo inicial
    private Date cont2;     //almacena el tiempo final
    private int tiempo;     //diferencia de tiempo para agregar gotas en el escenario
    /**
     * Constructor para la clase Tuberia
     * @param rotacion (true para inclinacion en el sentido contrareloj
     *                  false para inclinacion en el sentido reloj)
     * @param m referencia al mono
     * @param t tiempo en segundos para el lanzamiento de una gota de agua
     */
    public Tuberia(boolean rotacion,Mono m,int t)
    {
        super(rotacion,m);
        tiempo = t;
        cont = null;
    }
    /**
     * Constructor para la clase Tuberia
     * @param m referencia al mono
     * @param t tiempo en segundos para el lanzamiento de una gota de agua
     */        
    public Tuberia(Mono m, int t)
    {
        super(m);
        tiempo = t;
        cont = null;
    }
    /**
     * Metodo hace la asignacion del tiempo inicial
     * o en su defecto llama a checar el tiempo final
     */
    public void act()
    {
        if(cont == null)
            cont = new Date();
        else
            this.checaTiempo();
    }
    /**
     * Se encarga de verificar la difernecia de tiempo
     * entre los dos contadores y verificar la diferencia
     * para agregar una gota en el escenario
     */
    public void checaTiempo()
    {
        cont2 = new Date();
        if(((cont2.getTime()-cont.getTime())/1000) >= tiempo){
            ((Escenario)this.getWorld()).agrega(new Gota(mono,10),this.getX(),this.getY()+this.getImage().getHeight()/2);
            cont = null;
        }
    }
    
    
}
